(a) Field of the Invention
The present invention relates to a method for transmitting and receiving variable length packets on the basis of the FEC coding. More specifically, the present invention relates to a method for transmitting and receiving variable length packets on the basis of the FEC coding for generating parity packets of the variable length packets without padding to recover lost packets, and enabling a transmitter to immediately transmit data packets.
(b) Description of the Related Art
Digital communication systems use the ARQ (automatic repeat request) method or the FEC (forward error correction) method so that a receiver may control packet losses generated at a channel during data transmission.
The ARQ method includes a stage for analyzing whether received data blocks have errors or are lost, and a stage for requesting retransmission of blocks that have errors or are lost. The ARQ method is not suitable for a system that has many errors and is strict with delay.
The FEC method transmits data with additional data so that the receiver may detect errors and recover data without retransmission of the error data. The FEC method includes the Hamming code, the BCH code, and the RS (Reed Solomon) code. In particular, the RS code allows per-byte error detection and correction.
In the IETF document “An RTP Payload Format for Generic Forward Error Correction” (IETF(Internet Engineering Task Force) RFC(Request For Comment Document) 2733, December 1999) proposed by J. Rosenberg et al., exclusive-or calculation is used.
A single parity packet for each set of packets is transmitted in a separate stream. When a packet is lost from the corresponding set, it can be restored by a receiver. In order to be compatible with a host that does not support the FEC method, the parity packet has a predetermined RTP (Real-time Transport Protocol) payload type value. The host that does not know the RTP payload type value ignores a received parity packet and executes the original process according to a previous IETF document of “RTP: A Transport Protocol for Real-Time Application” (IETF RFC 1889, January 1996) by H. Schulzrine.
Also, according to “An Improved UDP Protocol for Video Transmission Over Internet-to Wireless Networks” (IEEE Tr. On Multimedia, pp. 356-365, September 2001) by H. Zheng, and “An Adaptive Redundancy Control Method for Erasure-Code Based Real-Time Data Transmission Over the Internet” (IEEE Tr. On Multimedia, pp. 366-374, September 2001) shortened RS codes are used for restoring erased packets. When k data packets are transmitted together with (n-k) parity packets, even if (n-k) packets are lost to the maximum, they may be restored by the receiver. Serial numbers of the lost packets can be detected by the receiver using an RTP protocol. (The term erasure is defined to be loss or an error at a known position.) The above-noted method has more packet loss protection than RFC 2733 since more than one packet may be restored by using the method. The method for restoring at least one packet proposed by Wagner is currently under the process of standardization by the IETF (“draft-ietf-avt-uxp-02.txt: An RTP payload format for erasure-resilient transmission of progressive multimedia streams,” March 2002).
The above methods are applied on the assumption that the length of the packets is fixed. The length of the packets of compressed audio is fixed, and the length of the packets of compressed video is variable in most cases as shown in FIG. 10.
Accordingly, when the length of packets to be transmitted is variable and much delay is not allowed in the like manner of recent Internet video services, it is required to use the FEC method and modify it to be suitable for streams of variable length packets.
Because the conventional FEC coding methods are based on the same length packets, the methods have a weak point that a padding process is required to obtain the same length packets as shown in FIG. 6. Also, since the length of the parity packets would be the same as the longest length of the packets in an associated packet group, a bandwidth is wasted. And since a transmitter does not transmit input packets until the associated packet group including the first packet through the sixth packet is input so as to detect the packet of the longest length, delay is problematically generated.